浅谈CMD和win powershell的区别_PowerShell_脚本之家

创建时间:2018/11/22 9:23
来源:https://www.jb51.net/article/72197.htm

浅谈CMD和win powershell的区别

 更新时间:2015年09月14日 10:11:02   投稿:hebedich   我要评论

..
本文给大家简单描述了一下POWERSHELL和CMD的区别,简单的说,Powershell是cmd的超集,换句话说,cmd能做的事情,Powershell都能做,但是Powershell还能额外做许多cmd不能做的活。
..

cmd是和powershell都可以做命令行交互,批处理和powershell脚本功能也相当。

我不知道你怎么理解cmd,但下面是powershell是基于.net的,只要你足够了解.net,你可以使用她做任何你想做的事情。

Windows PowerShell 是专为系统管理员设计的新 Windows 命令行 shell。Windows PowerShell 包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

与接受和返回文本的大多数 shell 不同,Windows PowerShell 是在 .NET Framework 公共语言运行时 (CLR) 和 .NET Framework 的基础上构建的,它接受和返回 .NET Framework 对象。环境中的这一根本更改带来了管理和配置 Windows 的全新工具和方法。

Windows PowerShell 引入了 cmdlet(读作“command-let”)的概念,这是内置到 shell 中的一个简单的单一功能命令行工具。可以分别使用每个 cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。Windows PowerShell 包括一百多个基本的核心 cmdlet,您可以编写自己的 cmdlet 并与其他用户共享它们。

与许多 shell 一样,Windows PowerShell 为您提供了对计算机上文件系统的访问。此外,使用 Windows PowerShell 提供程序还可以访问其他数据存储,如注册表和数字签名证书存储,就像访问文件系统一样容易。

简单的说,Powershell是cmd的超集,换句话说,cmd能做的事情,Powershell都能做,但是Powershell还能额外做许多cmd不能做的活。

主要是系统管理功能、脚本语言和在线帮助更强大,你确实可以只把它当成cmd来用,也可以学和用得更深

powershell的优点

没有做不到,只有想不到。用 PowerShell 甚至可以 Load C/C++ 写的 dll,然后执行里面的代码,COM 就不说了。跑题了,题主问不同,窃以为 PowerShell 和 cmd 最大的不同,并且也是和其它 *nix Shell 最大的不同在于 PowerShell 的 pipe 传递的是 .net object,而不是 raw 字符串,于是这就打开了一扇神奇的大门,因为 PowerShell 的一切组件都可以和谐地共存,彼此不用互相猜忌,不用猜你喂给我的数据合不合法,也不用担心我喂给你的参数格式对不对。大家共享一个 CLR,拥有丰富的 metadata,自由自在地在 .net 的世界里徜徉和探索。顺带宣传一下 https://chocolatey.org/ ,Windows 的 apt-get,基于 PowerShell

PowerShell为什么强大

微软是一个很”低调”的公司,取名为微软,感觉有“微微软下去”的意思,这是个玩笑了。windows 操作系统 和office办公软件,如此之优秀,微软也没敢命名为PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)发布后的第二年(2006年),微软就直接就发布了Windows PowerShell 1.0,并且”大言不惭“地命名为PowerShell,这也有点太不淡定了。

今天我根据自己的体验来稍微总结一下为什么PowerShell如此之强大。

破天荒的方便

诸如存储计算中GB,MB,KB单位等;数组声明中的1..n和下标为-1的处理;还有所见即所得,通俗易懂的动词+名词结构Cmdlet。

面向对象

与面向过程相比,面向对象更方便更容易描述现实世界,也算赶上了时髦。

绑上.NET这棵大树

正所谓大树下面好乘凉,PowerShell绑上.NET这个大款了,借助.NET Framework平台强大的类库,几乎让一切都成为可能。

强大的兼容性

完全兼容windows 平台上其它调用,如可执行文件(exe),批处理bat和vb script等。

基于平台的可扩展性

微软有个优点,与应用相比,它更喜欢做平台。PowerShell早已变成一个平台,在PowerShell 刚发布的第二年,微软的System Center Operations Manager 和 SharePoint就提供了针对该平台的组件,后来的活动目录,Hyper-V,Windows Azure,Office 365就更不用说了。除了微软,亚马逊的云平台管理,Dell的out-of-hand 管理,也都提供了基于PowerShell的管理组件。PowerShell 俨然变成了一个标准,变成了一个规范。

举例介绍
如果您第一次听说过PowerShell,想稍微观望下,且看下面的10个例子。

[数学计算] (39+79-51)*497/28 = ?
心算再快,应当也没有敲回车键快吧:

PS> (39+79-51)*497/28
1189.25

[日期] 距离下一个情人节还有多少分钟?
我知道距离多少天好算,如果变成分钟呢?

$now=Get-Date
$day=[datetime]'2-14'
if($now -lt $day ){
$day.Subtract($now).TotalMinutes
}
else{
$day.AddYears(1).Subtract($now).TotalMinutes
}

[容量] 3GB > 3145726KB吗 ?

PS> 3gb -gt 3145726kb
True

[ID]能产生一个GUID吗?

PS> [guid]::NewGuid()

Guid
----
0f283ab4-f402-400c-98ce-359442f11f1a

[文件] Windows目录下所有可执行文件exe的大小是多少?

dir $env:windir -Filter *.exe | measure -Sum Length

[注册表] 注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 下 ‘Enable64Bit'的值是多少?

(Get-ItemProperty -Path hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit

[证书] 指纹为[28DE15612AFF1CD69596AB17AF06AE86CB9C003B]的证书在证书存储区吗?

ls Cert:\LocalMachine\My\ |
where { $_.Thumbprint -eq '28DE15612AFF1CD69596AB17AF06AE86CB9C003B' }

[服务] 打印机服务有没有启动呢?

Get-Service spooler

[进程] 当前运行了多少个IE进程?

(Get-Process iexplore ).count

[报表] 将所有运行的进程信息导出为HTML报表?

Get-Process | ConvertTo-Html | Out-File a.html

现在知道了powershell的强大了吧,在windows平台powershell还是比较好用的。

. .
. .
.

相关文章

  • ..
  • Powershell的break、continue和return简单总结

    这篇文章主要介绍了Powershell的break、continue和return简单总结,和其它语言中的作用相同,所以本文的总结比较短小,需要的朋友可以参考下
    2014-07-07
  • PowerShell函数中接收管道参数实例

    这篇文章主要介绍了PowerShell函数中接收管道参数实例,即通过管道给函数传递参数的方法,需要的朋友可以参考下
    2014-07-07
  • PowerShell管理Win Server 2008 R2

    在Windows Serve 2008 R2中,一个重要改进就是PowerShell版本升级为2.0。Win 2008 R2包括一系列新的服务器管理界面,这些均建立在PowerShell 2.0之上。它新增了240个cmdlets命令集,新的PowerShell图形用户界面也增添了开发功能,从而用户能更简单创建自己的命令行。
    2015-09-09
  • PowerShell 数组的多种录入方法

    这篇文章主要介绍了PowerShell 数组的多种录入方法,需要的朋友可以参考下
    2015-07-07
  • PowerShell实现测试端口可用性脚本分享

    这篇文章主要介绍了PowerShell实现测试端口可用性脚本分享,本文脚本相对简单,使用TCP套接字实现需求,需要的朋友可以参考下
    2014-11-11
  • PowerShell隐藏不显示窗口的多种方法

    这篇文章主要介绍了PowerShell隐藏不显示窗口的多种方法,本文讲解了启动PowerShell时隐藏自己的窗口、在PowerShell启动其它进程时隐藏窗口、使用PowerShell隐藏其它进程的窗口三种方法,需要的朋友可以参考下
    2015-06-06
  • 详谈Ubuntu PowerShell(小白入门必看教程)

    下面小编就为大家带来一篇详谈Ubuntu PowerShell(小白入门必看教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • PowerShell中定义多行字符串变量的方法

    这篇文章主要介绍了PowerShell中定义多行字符串变量的方法,本文介绍PowerShell中如何定义一个跨多行的字符串变量,需要的朋友可以参考下
    2014-08-08
  • PowerShell编程中的一些命名规则参考

    这篇文章主要介绍了PowerShell编程中的一些命名规则参考,PowerShell编程中的最佳实践(Best Practices),需要的朋友可以参考下
    2014-08-08
  • PowerShell中使用curl(Invoke-WebRequest)的方法教程

    这篇文章主要给大家介绍了关于在PowerShell中使用curl(Invoke-WebRequest)的方法教程,文中通过详细的示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
.
. .

最新评论